package Demo9;

/**
 * 排序算法类，用于调用排序方法并获取统计信息
 */
public class SortingAlgorithms {

    /**
     * 对数组进行快速排序，并统计比较次数和移动次数。
     *
     * @param array 要排序的数组
     * @return 包含排序统计信息的对象
     */
    public static SortingStatistics quickSortWithStats(int[] array) {
        int[] comparisons = {0};
        int[] movements = {0};
        Sorting.quickSort(array, 0, array.length - 1, comparisons, movements);
        return new SortingStatistics(comparisons[0], movements[0]);
    }

    /**
     * 对数组进行归并排序，并统计比较次数和移动次数。
     *
     * @param array 要排序的数组
     * @return 包含排序统计信息的对象
     */
    public static SortingStatistics mergeSortWithStats(int[] array) {
        int[] comparisons = {0};
        int[] movements = {0};
        Sorting.mergeSort(array, 0, array.length - 1, comparisons, movements);
        return new SortingStatistics(comparisons[0], movements[0]);
    }
}
